<?php
class SpecialWikevalRevisar extends SpecialPage {
    function __construct() {
        parent::__construct( 'WikevalRevisar' );
    }
    
    function execute( $par ) {
        global $wgRequest, $wgOut, $wgExtensionAssetsPath, $wgUser;
        $ruta_extension = "$wgExtensionAssetsPath/wikeval";
        
        $this -> setHeaders();
        
        // Título de la página
        $wgOut -> setPageTitle("Wikeval");
        
        // Hoja de estilos para la fuente de las cabeceras
        $wgOut -> addExtensionStyle('http://fonts.googleapis.com/css?family=Hammersmith+One');
        
        // Hoja de estilos propia
        $wgOut -> addExtensionStyle("$ruta_extension/css/style.css");
        $wgOut -> addExtensionStyle("$ruta_extension/css/estilos_adicionales.css");
       
        // Esto borra el H1 que pone mediawiki por defecto
        $wgOut -> addHeadItem("wikeval_style", '<style type="text/css">/*<![CDATA[*/ .firstHeading { display:none; } /*]]>*/</style>');
        
        $wgOut -> addScriptFile("$ruta_extension/js/script.js");
        
        // Contenedor general para evitar el desparrame de contenido a lo largo en pantallas panorámicas
        $wgOut -> addHTML("<div id='wikeval_contenedor'>");
        
        // Cabecera
        $wgOut -> addHTML("<h1 class='wikeval'>Zona de revisión</h1>");
        
        try {
            $par = trim($par);
                
            if ($par == ""){
                throw new Exception("No se indicó ninguna página como parámetro para evaluar");
            }
         
            $titulo = Title::newFromText($par);            
            
            if($titulo == null || !$titulo -> exists()){
                throw new Exception("La página indicada (<em>'$par'</em>) no existe.");                
            }       

            $id_articulo = $titulo -> getArticleID();
            $articulo = Article::newFromID($id_articulo);
            
            $dbw = wfGetDB( DB_MASTER );

            $res = $dbw -> select( 'wikeval', '*', 'article_id = ' . $id_articulo );

            $wgOut -> addHTML("<p>Existen " . $dbw -> numRows($res) . " etiquetas para este artículo.</p>");

            while($fila = $res -> next()){
            
                $cuerpo = "<div class='wikeval_etiqueta_listada clearfix' id= 'wikeval_etiqueta_" . $fila -> ID . "'>";
                $cuerpo .= "<div class='izquierda'>";
                $cuerpo .= "<strong>ID de etiqueta: </strong>" . $fila -> ID . "<br>";
                $cuerpo .= "<strong>Rúbrica: </strong>" . $fila -> eval_rub . "<br>";
                $cuerpo .= "<strong>Concepto: </strong>" . $fila -> eval_con . "<br>";
                $cuerpo .= "<strong>Propiedad: </strong>" . $fila -> eval_prop . "<br>";	
                $cuerpo .= "</div>";
                    
                $cuerpo .= "<div class='izquierda'>";
                $cuerpo .= "<strong>Valor: </strong>" . $fila -> eval_val. "<br>";

                if ($fila -> frag_start == $fila -> frag_end){		
                    $cuerpo .= "<strong>Fragmento: </strong> Todo el documento<br>";
                } else { 
                    $cuerpo .= "<strong>Fragmento: </strong> De " . $fila -> frag_start . " a " . $fila -> frag_end . "<br>";
                }
                
                $cuerpo .= "<strong>Comentario: </strong>" . $fila -> comment . "<br>";
                $cuerpo .= "</div>";
                    
                $cuerpo .= "</div>";

                $wgOut -> addHTML($cuerpo);
            }
                
            

        } catch (Exception $e){
            $mensaje = "<div class='alert alert-error alert-block'><h3 class='alert-heading'>ERROR:</h3> {$e -> getMessage()}</div>";
            $wgOut -> addHTML($mensaje);        
        }
        // Cerramos la capa del contenedor
        $wgOut -> addHTML("</div>");
    }
}

?>
